<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			/**
			 * 对象属性是由名字，值和一组特性（attribute）构成的，在 ECMAScript 5 中，
			 * 属性值可以用两个方法来代替，这两个方法就是getter和setter
			 */
			"use strict"
			
			var obj = {
				_name:"lin",
				get r(){
					return this._name;
				},
				set r(n){
					this._name = n;
				},
			}
			console.log(obj.r);
			obj.r = "wang";//利用 set 对属性进行设置
			console.log(obj.r);
			
			
			"use strict"
			var person = function() {//
				var _name = ' ';
				var obj = {};
				Object.defineProperty(obj, 'name', {
					configurable: true,//是否可配置
					enumerable: true,//是否可枚举
					get: function() {
						return _name;
					},
					set: function(n) {
						_name = n;
					}
				})
				return obj;
			}();
			console.log(person.name)
			person.name = "Zhangsan";
			person.name // 输出 --> Zhangsan
			
		</script>
	</body>
</html>